package cn.tedu.fy.pethome.service;

import cn.tedu.fy.pethome.pojo.dto.CartAddDTO;
import cn.tedu.fy.pethome.pojo.dto.CartUpdateDTO;
import cn.tedu.fy.pethome.pojo.entity.Cart;
import cn.tedu.fy.pethome.pojo.restful.JsonPage;
import cn.tedu.fy.pethome.pojo.vo.CartStandardVO;
import cn.tedu.fy.pethome.security.LoginPrincipal;

import java.util.List;

public interface ICartService {
    /**
     * 新增购物车
     * @param cartDTO
     */
    void addCart(CartAddDTO cartDTO, LoginPrincipal loginPrincipal);

    /**
     * 查询我的购物车
     * @param page
     * @param pageSize
     * @return
     */
    List<CartStandardVO> listCarts(LoginPrincipal loginPrincipal);

    /**
     * 单独删除购物车
     * @param ids
     */
    void removeCart(Long id);

    /**
     * 清空购物车
     */
    void removeAllCarts(LoginPrincipal loginPrincipal);

    /**
     *
     *TODO 可以和removeAllCarts合并
     * @param cart
     */
    void removeUserCarts(Cart cart);
    /**
     * 更新购物车商品数量
     * @param cartUpdateDTO
     */
    void updateQuantity(CartUpdateDTO cartUpdateDTO);
}
